Methods, systems, and media for presenting annotations across multiple videos

ABSTRACT

Methods, systems, and media for presenting annotations across multiple videos are provided. In some implementations, methods for presenting annotations across multiple videos are provided, the methods comprising: receiving a selection of an annotation from a user; identifying, by a hardware processor, a plurality of videos associated with the user account to be associated with the annotation; and presenting the annotation upon rendering one of the plurality of videos.

This application is a continuation of U.S. patent application Ser. No.13/839,843, filed Mar. 15, 2013, which is hereby incorporated byreference herein in its entirety.

TECHNICAL FIELD Background

Generally speaking, a user of a video sharing services or the like maybe interested in promoting a brand associated with the user and/orpromoting one or more videos associated with the user's account. Forexample, when a user adds a new video, the user may wish to promote thenew video by directing viewers of older videos to the new video.Techniques for directing viewers to a new video often require the userto access each video in a video editor or the like, and manually add ina reference to the new video, such as a link or text promoting the newvideo.

Accordingly, it is desirable to provide new methods, systems, and mediafor presenting annotations across multiple videos.

SUMMARY

In accordance with some implementations of the disclosed subject matter,methods, systems, and media for presenting annotations across multiplevideos are provided.

In accordance with some implementations of the disclosed subject matter,methods for presenting annotations across multiple videos are provided,the methods comprising: receiving a selection of an annotation from auser; identifying, by a hardware processor, a plurality of videosassociated with an account of the user to be associated with theannotation; and presenting the annotation upon rendering one of theplurality of videos.

In accordance with some implementations of the disclosed subject matter,systems for presenting annotations across multiple videos are provided,the systems comprising: a hardware processor configured to: receive aselection of an annotation from a user; identify a plurality of videosassociated with an account of the user account to be associated with theannotation; and present the annotation upon rendering one of theplurality of videos.

In accordance with some implementations of the disclosed subject matter,systems for presenting annotations across multiple videos are provided,the systems comprising: means for receiving a selection of an annotationfrom a user; means for identifying a plurality of videos associated withan account of the user to be associated with the annotation; and meansfor presenting the annotation upon rendering one of the plurality ofvideos.

In some embodiments, the annotation includes at least one of text,animation, an image, a hyperlink, and a video.

In some embodiments, the system further comprises means for receiving aselection of a location in which to present the annotation.

In some embodiments, the system further comprises means for receiving aselection of a period of time during which to present the annotationwhen rendering a video.

In some embodiments, the system further comprises means for presentingthe annotation upon rendering a video that has been associated with theaccount after the selection of the annotation has been received.

In some embodiments, the plurality of videos are a subset of all videosassociated with the user account; and the system further comprisingmeans for inhibiting presentation of the annotation upon renderingvideos not included in the plurality of videos.

In some embodiments, the system further comprises means for changing theannotation periodically based on a rule.

In some embodiments, the system further comprises means for specifying asecond annotation to be associated with the plurality of videos.

In some embodiments, the system further comprises causing contentassociated with the annotation to be presented in response to selectionof the annotation when presented.

In some embodiments, the plurality of videos is all videos of theaccount.

In accordance with some implementations of the disclosed subject matter,non-transitory computer-readable media containing computer executableinstructions that, when executed by a processor, cause the processor toperform a method for presenting annotations across multiple videos, themethod comprising: receiving a selection of an annotation from a user;identifying a plurality of videos associated with the user account to beassociated with the annotation; and presenting the annotation uponrendering one of the plurality of videos.

BRIEF DESCRIPTION OF THE DRAWINGS

Various objects, features, and advantages of the present invention canbe more fully appreciated with reference to the following detaileddescription of the invention when considered in connection with thefollowing drawing, in which like reference numerals identify likeelements.

FIG. 1 shows an example of a process for presenting annotations acrossmultiple videos in accordance with some implementations of the disclosedsubject matter.

FIG. 2 shows an example of a process for selecting an annotation inaccordance with various implementations of the disclosed subject matter.

FIG. 3 shows an example of a user interface for selecting a type ofannotation in accordance with some implementations of the disclosedsubject matter.

FIG. 4 shows an example of a user interface for configuring and showinga preview of a brand annotation in accordance with some implementationsof the disclosed subject matter.

FIG. 5 shows an example of a user interface for selecting a video onwhich to base a video annotation in accordance with some implementationsof the disclosed subject matter.

FIGS. 6A and 6B show examples of a user interface for configuring andshowing a preview of a video annotation in accordance with someimplementations of the disclosed subject matter.

FIG. 7 shows a diagram illustrating a data flow for presenting anannotation in accordance with some implementations of the disclosedsubject matter.

FIG. 8 shows a diagram illustrating a data flow for selecting and/orchanging an annotation in accordance with some implementations of thedisclosed subject matter.

FIG. 9 shows a schematic diagram of an illustrative system suitable forimplementation of mechanisms described herein for presenting annotationsacross multiple videos in accordance with some implementations of thedisclosed subject matter.

FIG. 10 shows a detailed example of a server and one of the clientdevices of FIG. 9 that can be used in accordance with someimplementations of the disclosed subject matter.

DETAILED DESCRIPTION

In accordance with some implementations of the disclosed subject matter,mechanisms for presenting annotations across multiple videos areprovided.

In some implementations, these mechanisms can provide a user interfacefor annotating videos associated with a user account of a user (e.g., avideo publisher, a video owner, a content owner, a content publisher,etc.) of a video hosting and/or video sharing service (e.g., a servicethat facilitates viewers watching videos made available by users).

In some implementations, these mechanisms can present the user interfaceto the user, and receive a user selection of one or more annotations toassociate with various videos associated with the user account.Additionally, these mechanisms can receive a user selection of theannotation to associate with videos associated with the account withoutpresenting any of the videos associated with the account to the user(e.g., without presenting the user with a video editing interface or thelike). For example, the mechanisms can receive a user selection of aparticular video associated with the user account to use as the basisfor an annotation to be used across all videos associated with the useraccount. This can allow the user to feature or promote a particularvideo (e.g., a new video) across all of the videos associated with theuser account. As another example, the mechanisms can receive a userindication of a logo or other branding associated with the user accountto be associated with all videos of the user account. This can allow theuser to promote the brand of the user account across all of the videosassociated with the account.

In some implementations, the annotation can include an image to bepresented when a video associated with the account is rendered inresponse to a request from a viewer. Additionally, the annotation caninclude a link (e.g., instructions) that causes a viewer to be presentedwith content associated with the annotation when the annotation isselected by the viewer. For example, if a video annotation is associatedwith a video, selection of the video annotation can cause the video thatforms the basis of the video annotation to be rendered.

Turning to FIG. 1, an example 100 of a process for placing annotationsacross multiple videos is shown in accordance with some implementationsof the disclosed subject matter. As illustrated, at 102, process 100 canreceive user credentials, and the received credentials can be verifiedto determine whether the credentials correspond to a particular useraccount and/or whether the credentials are the proper credentials foraccessing the user account. Any suitable technique(s) can be used toreceive and/or verify user credentials. For example, in someimplementations, process 100 can request a username and a password froma user, and a received username and password combination can be checkedto determine whether the combination corresponds to a user account. Asanother example, process 100 can request biometric information (e.g., afingerprint, a palm print, a retina scan, etc.) from a user, andreceived biometric information can be checked to determine whether itcorresponds to a user account. As yet another example, process 100 candetermine whether a device being used by the viewer is already signed into a particular account (e.g., user credentials have previously beenreceived and verified).

In some implementations, one set of credentials can be associated withmultiple user accounts. For example, a user at a marketing company canbe associated with multiple user accounts, and credentials for themarketing company user can correspond to multiple user accounts. In suchan example, a user can be requested to select a particular user account.Additionally or alternatively, multiple sets of user credentials can beassociated with a single user account. For example, multiple users canhave access to a single user account.

At 104, process 100 can present a user interface to a user to allow theuser to select an annotation to be presented with videos associated withthe user account. Such a user interface can be presented to a user usingany suitable technique(s). For example, process 100 can cause the userinterface to be presented to a user as a graphical user interface (GUI)in a web page or a portion of a web page loaded by a browser running ona computing device. As another example, the user interface can bepresented to a user as a GUI that is part of an application (e.g., anapplication for a personal computer, an application for a mobilecomputing device, etc.) for managing a user account, wherein theapplication can interact with process 100 in managing the user account.As yet another example, the user interface can be presented to a user bya user interface application as a GUI, using an application programminginterface (API) to load the interface and/or interact with process 100.As still another example, the user interface can be presented as anon-graphical user interface such as through the use of text and/orsound.

At 106, process 100 can receive a user selection of an annotation (orannotations) to be presented with videos associated with the useraccount. The selection of the annotation can be made using any suitabletechnique(s).

FIG. 2 shows an example 200 of a process for presenting a user interfacefor selecting an annotation to be presented across multiple videos inaccordance with some implementations of the disclosed subject matter. At202, process 200 can cause options to be presented for a user to choosea type of annotation to present with videos associated with the useraccount. For example, a user can be presented with a user interface asdescribed above in connection with 104 of FIG. 1.

FIG. 3 shows a particular example 300 of a user interface for presentinga user with options for choosing an annotation to be presented withvideos associated with the user account in accordance with someimplementations of the disclosed subject matter. In user interface 300,a user can be presented with choices of different types of annotationsto associate with videos associated with the user account. Moreparticularly, a user can be presented with a user interface element 302for choosing an annotation to promote a brand of the user account, and auser interface element 304 for choosing an annotation to promote avideo. User interface 300 can also present a representation 306 of abrand annotation as it might be presented in a video and arepresentation 308 of a video annotation as it might be presented in avideo.

Returning to FIG. 2, at 204, process 200 can receive a selection of atype of annotation to be presented with videos associated with the useraccount. Process 200 can receive a user selection using any suitabletechnique(s). For example, a selection can be received using a web page(e.g., using a pointing device such as a mouse) or using an application(e.g., using a touch sensitive display or the like) and the selectioncan be communicated over a network to process 200. As a more particularexample, as shown in FIG. 3, process 200 can receive a user selectionusing user interface 300 upon a user selecting a user interface element310 or a user interface element 312. In some implementations, userinterface element 310 and user interface element 312 can be any suitableuser interface feature, such as a button, a link, a switch, etc. In userinterface 300, a branding annotation can be selected in response to auser selecting user interface element 310 or a video annotation can beselected in response to a user selecting user interface element 312.

Returning to FIG. 2, at 206, process 200 can determine whether the userhas selected a video annotation or a branding annotation. If the userhas selected a branding annotation (“BRANDING” at 206), process 200 canproceed to 208.

At 208, process 200 can present a default branding annotation to theuser. The default branding annotation can include any suitable defaultannotation. For example, the default annotation can include a logo or animage that has previously been associated with the user account. Asanother example, the default annotation can include an image associatedwith another account linked to the user account, such as a social mediaaccount associated with the same user. As yet another example, thedefault annotation can include a thumbnail from a video associated withthe user account, such as a most-watched video associated with the useraccount.

In some implementations, a branding annotation can be used to promote abrand identity of an account or a part of an account. For example, if anaccount is associated with a musician, a brand identifier of themusician such as a logo, a name, or the like, can be used as a brandannotation. Additionally, the brand annotation can be configured suchthat when the brand annotation is presented during the rendering of avideo, selection of the brand annotation (e.g., selection on a clientdevice by a viewer) can cause a device rendering the video (e.g., theclient device) to navigate to a location associated with the brand.

For example, selection of the branding annotation can cause therendering device to navigate to a location where videos associated withthe account are aggregated. The rendering device can be navigated to anysuitable location. For example, in some implementations, the renderingdevice can be navigated to an account home page. As another example, insome implementations, the rendering device can be navigated to a channelassociated with the account. In some implementations, a channel can be acollection of one or more media content. More particularly, for example,a collection of content from a common source or relating to a commontopic can be a channel. In some implementations, a channel can besubscribed to by a user.

As another example, selection of the branding annotation can cause therendering device to navigate to a home page or other page associatedwith the user account. For instance, if the account is associated with amusician, selecting the brand annotation can cause the rendering deviceto navigate to the musician's home page; or if the account is associatedwith a brand of products, selecting the brand annotation can cause therendering device to navigate to a web page associated with the brand.

In some implementations, selecting the branding annotation can cause therendering device to ask the viewer whether he/she would like tosubscribe to videos associated with the account (e.g., using a Web page,an app interface, etc.), to receive a request from the viewer tosubscribe to videos associated with the account, and/or to establish asubscription to videos associated with the account for the viewer. Forexample, in some implementations, upon selecting the brandingannotation, the viewer can be automatically subscribed to videosassociated with the account. As a more particular example, in responseto the viewer hovering a pointer over the branding annotation, a“Subscribe” button can be presented, and, upon the viewer selecting thebutton, a subscription to videos associated with the account can beestablished for the viewer.

FIG. 4 shows an example 400 of a user interface for setting a brandingannotation and presenting a preview of the branding annotation to auser. User interface 400 can include a user interface element 402 forfacilitating the setting of a branding annotation by a user. In someimplementations, user interface element 402 can include a preview 404that presents to the user how a branding annotation may look whenpresented with a video associated with the user account. Preview 404 caninclude any suitable imagery, such as an image of a blank screen, ageneric image, a generic video, a clip from a video associated with theuser account, a screen shot of a video associated with the user account,etc.

In some implementations, user interface 400 can include a sample 406 ofthe branding annotation and an example placement of sample 406 (e.g.,top right). Sample 406 can include a preview of any suitable brandingannotation, such as the default branding annotation described above inconnection with FIG. 2, or a customized branding annotation as describedbelow. As shown in user interface 400, a placement of the brandingannotation as it will be presented in association with videos associatedwith the account can be shown in preview 404. Additionally, an initialplacement of the branding annotation can be set at a default such as thetop right corner as shown in user interface 400.

Referring back to FIG. 2, at 210 process 200 can determine whether theuser has selected an option to customize the branding annotation (e.g.,the look of the branding annotation or the videos with which to presentthe branding annotation). Any suitable technique(s) can be used todetermine whether a user has selected to customize the brandingannotation. For example, when it is determined that a user has selecteda branding annotation at 204, process 200 can query the user todetermine whether to use the default branding annotation or whether touse a custom branding annotation. As another example, after a defaultbranding annotation has been presented to the user, process 200 canprompt a user to select a particular user interface element to customizethe branding annotation.

FIG. 4 shows a more particular example of user interface elements 408and 410 that can be presented for receiving a user indication tocustomize the branding annotation shown in sample 406 and/or tocustomize selection of which videos the branding annotation will beassociated with. These user interface elements 408 and 410 can includeany suitable user interface elements such as a selectable user interfacebutton, a selectable link, etc.

If it is determined that the user has chosen to customize the brandingannotation (“YES” at 210), process 200 can proceed to 212. At 212, thelook of the branding annotation and/or the selection of which videos thebranding annotation will be associated with can be customized. Forexample, as described above in connection with FIG. 4, the look of thebranding annotation can be customized by receiving a selection of userinterface element 408, and selection of an item to use as the brandingannotation. In some implementations, a file (e.g., stored locally orremotely, etc.), a URL, etc., can be selected as the item to be used asthe branding annotation. In some implementations, a user can beinstructed that certain types of items are suitable for use as abranding annotation such as image files, which may include still images,animated images, video clips, etc. Additionally or alternatively, a usercan be requested to specify a destination (e.g., an account page, ahomepage, a web page, etc.) to associate with the branding annotation.

In some implementations, process 200 can receive a user indication tocustomize the selection of videos that the branding annotation will beassociated with upon the user selecting user interface element 410. Forexample, the selection of which videos the branding annotation will beassociated with can be customized by process 200 receiving a selectionof user interface element 410 and prompting the user to choose videosfrom among some or all videos associated with the user account. Anysuitable technique(s) can be used to choose the selection of videos thatthe branding annotation will be associated with. For example, a listwith check boxes that can be checked or unchecked to indicate whethercorresponding videos are included or excluded can be used. As anotherexample, a comprehensive list of videos associated with the account canbe presented and a video can be excluded from being associated with thebranding annotation by being selected for exclusion.

Referring back to FIG. 2, if it is determined that the user has notrequested to customize the branding annotation (“NO” at 210), or afterbranding annotation customization at 212, process 200 can proceed to218.

At 218, process 200 can present the user with options for placing thebranding annotation to be presented with videos associated with the useraccount. A placement of the branding annotation can be set using anysuitable technique(s). For example, in some implementations, process 200can present the user with a list of placements and/or times at which topresent the branding annotation. As another example, process 200 canquery the user for a location at which to place the branding annotation(e.g., by receiving text coordinates, by receiving a selection from apointing device, etc.) and/or for a time at which to present thebranding annotation (e.g., by receiving a user selection of a time on atimeline expressed as a percentage of a video's length).

In some implementations, a placement of the branding annotation can bebased on a selection made using user interface element 412 as shown inuser interface 400 of FIG. 4. User interface element 412 can bepresented as a drop down list that the user can utilize to select aplacement of the branding annotation. For example, drop down list 412can include various positions, such as “top right,” “top middle,” “topleft,” “left,” “right,” “middle,” “bottom left,” “bottom middle,”“bottom right,” etc. In response to receiving a user selection of adifferent position, process 200 can change the position of sample 406 inuser interface 400 to demonstrate to the user where the new placementwill be with respect to a rendering video. Additionally oralternatively, any other suitable technique(s) can be used fordetermining a placement of a branding annotation. For example, a listwith radio buttons can be presented to the user for choosing a locationof the branding annotation. As another example, process 200 candetermine a placement of the branding annotation by receiving a userselection of sample 406 (e.g., from a pointing device, from atouchscreen or touchpad, etc.) and an indication of a new placement(e.g., by receiving a selection of a portion of user interface 400, byreceiving an indication of a dragging operation and receiving anindication that a selection has ceased, etc.).

It should be noted that although the placements for the brandingannotation are discussed as being presented within the video, in someimplementations, a branding annotation can be placed in a location otherthan within a video. For example, the branding annotation can bepresented beside a video so as not to overlap content in the video.

In some implementations, a time when the branding annotation is to bepresented can be set in response to a receiving an input using userinterface element 414 as shown in user interface 400 of FIG. 4. Userinterface element 414 can be presented as a drop down list that the usercan utilize to select a time when the branding annotation is to bepresented. For example, drop down list 414 can include various timeperiods, such as “entire video,” “end of video,” “beginning of video,”“middle of video,” “custom time,” etc. Additionally, a timing indication416 can be presented with preview 404 to represent to a user the timethat the user has chosen to present the branding annotation with videosassociated with the user account. In some implementations, timingindication 416 can change depending on a time period set using drop downlist 414. For example, as shown in user interface 400, “entire video” iscurrently selected as the time period during which to display thebranding annotation, and timing indication 416 can be used to indicatesuch by occupying the entire width of the video as shown in preview 404.FIGS. 6A and 6B show other examples of timing indications 416 that canbe presented in connection with a rendering video in someimplementations.

Referring back to FIG. 4, in some implementations, user interface 400can include user interface element 418 and user interface element 420for receiving a selection of whether to save a current placement and/ortime of a branding annotation (e.g., by selecting user interface element418) or to remove the branding annotation from all videos or selectedvideos (e.g., by selecting user interface element 420).

Returning to FIG. 2, if it is determined that the user selects a videoannotation at 206 (“VIDEO”), process 200 can proceed to 214. At 214,process 200 can present a request to the user to select a particularvideo to use as the basis of the video annotation. A user can berequested to select a particular video using any suitable technique(s).For example, in some implementations, process 200 can prompt the user tochoose a video from among all videos associated with the user account.As another example, process 200 can request that a user provide a URLcorresponding to a video associated with the user account. As yetanother example, process 200 can request that a user provide a URLcorresponding to any video associated with a service which providesaccess to the account (e.g., a video hosting service).

In some implementations, process 200 can present a user with options forchoosing a video by rule, such as choosing a video that was mostrecently associated with the account (e.g., a new video), choosing avideo at random, choosing a video from among a set of videos chosen by auser, etc. In a more particular example, process 200 can receive a userindication of a schedule of which video to use as the basis for a videoannotation during different time periods (e.g., different days of theweek, etc.). As another example, process 200 can receive a userindication of a rule to determine a video to show, such as a next videoin a series if a current video is a part of a series, a next videoassociated with the account, a most popular video, a newest video, etc.As yet another example, process 200 can receive a user indication of aparticular video, and a user indication to set a rule such that if theuser is currently broadcasting anything live (e.g., streaming a video),that the live broadcast will be used as the basis for the videoannotation while it is ongoing.

As still another example, process 200 can receive a user indication tochoose a video to be used as the basis for the video annotation based onthe identity of a viewer. For instance, if it is determined that theviewer has recently watched a video that the user indicated is to beused as the basis for a video annotation, the viewer can instead bepresented with a different video that the viewer has not recentlywatched. Additionally or alternatively, process 200 can receive a userselection of a video to use as the basis for the video annotation basedon a viewer's past behavior, which can include, for instance, videosrecently watched by the viewer, observed preferences of the viewer, etc.

FIG. 5 shows a particular example 500 of a user interface for presentinga request to a user to specify a particular video to associate with thevideo annotation. In some implementations, user interface 500 can bepresented as an overlay to, for example, user interface 300 or userinterface 400 when process 200 receives a selection of user interfaceelement 312. As shown in FIG. 5, process 200 can prompt a user to selecta video to present as a video annotation by inserting a URL into a textbox 502, or to select a user interface element 504 to browse videosassociated with the user account. In some implementations, process 200can receive a URL of a video in box 502 to use as the basis for a videoannotation, and can select the video indicated by the URL in response toreceiving a selection of user interface element 506. Additionally oralternatively, process 200 can receive a selection of user interfaceelement 504 that indicates that the user selected to browse the videosassociated with the user account, and process 200 can present a userinterface (not shown) to allow the user to select a video to use as thebasis of the video annotation from among videos associated with the useraccount. After process 200 receives a user selection of a video usingthe browse function, in some implementations, process 200 can insert aURL of the chosen video into box 502, or the selected video can be usedto specify the video to associate with the video annotation.

User interface 500 can also include a user interface element 508 forcancelling the action of selecting a video to use as the basis for avideo annotation. In some implementations, if process 200 receives aselection of user interface 508 to cancel the video annotation, process200 can return the user interface to user interface 300 or userinterface 400, for example.

Referring back to FIG. 2, process 200 can receive a user selection of aparticular video to use as the basis for a video annotation at 216, andcan cause the user to be presented with a preview of the videoannotation. Any suitable technique(s) can be used for previewing thevideo annotation to a user.

FIG. 6A shows an example 600 of a user interface for presenting apreview of a video annotation to a user. User interface 600 can includea user interface element 602 for facilitating the setting of a videoannotation by a user. In some implementations, user interface element602 can include a preview 604 that presents to the user how a videoannotation may look when presented with a rendering video. Userinterface element 602 can also include a sample 606 of a videoannotation for the video selected at 216, which can be placed at anysuitable positions, such as a default position. If a branding annotationis associated with the videos of a user account, the default position ofthe video annotation can be set such that the branding annotation andthe video annotation will not be presented in the same location. In someimplementations, sample 606 can show a thumbnail of the video selectedat 214, or if multiple videos are chosen, sample 606 can rotate betweenthumbnails for the multiple different videos.

Referring back to FIG. 2, after the user is presented with a preview ofthe video annotation at 216, process 200 can proceed to 218. At 218,process 200 can present the user with options for the placement and thetiming of the video annotation to be presented with videos associatedwith the user account. In some implementations, these options can besimilar for the video annotations as for the branding annotations asdescribed above in connection with FIG. 4. For example, user interfaceelement 602 can include a drop down list 412 for choosing a position toplace the video annotation and a drop down list 414 for choosing adisplay time at which to present the video annotation.

As shown in FIG. 6A, in some implementations the display time can be setas “end of video” and this setting can be reflected in timing indication416 occupying a time period at the end of the video. In someimplementations, if the display time is chosen as the beginning or endof video, a user interface element 608 can be presented to the user forchoosing a duration for which top present the video annotation.Additionally, duration 608 can be set as a default time (such as tenseconds, twenty seconds, etc.) or as a default percentage of the totalvideo time (e.g., five percent, ten percent, etc.) and can be set by auser to any suitable value.

FIG. 6B shows another example 650 of a user interface having userinterface element 602 where a custom time is selected in drop down list414. As shown in FIG. 6B, when a custom time is chosen, a user selectionof a duration can be received using user interface element 608 and astart time can be received using a user interface element 652.Furthermore, as shown in FIG. 6B, if it is determined that a both abranding annotation and a video annotation have been selected, both userinterface element 402 and user interface element 602 can be presented tothe user at the same time.

Referring back to FIG. 2, at 218, process 200 can present the user withoptions for determining a placement of any annotation associated withthe user account. For example, if process 200 determines that the userhas chosen to display one branding annotation with a first subset ofvideos and another branding annotation with another subset of videos,different user interface elements can be presented for placing thesebranding annotations. As another example, as shown in FIG. 6B, aplacement of a branding annotation and a video annotation can be setusing the same user interface 650.

FIG. 7 shows an example 700 of a data flow for presenting an annotationin accordance with some implementations of the disclosed subject matter.In the example shown in FIG. 7, a client 702 (e.g., a personal computer,a tablet computer, etc.) can send a request to a server 704 for aparticular video at 706.

At 708, server 704 can receive the request for the video. In someimplementations, server 704 can determine whether the video that isrequested exists and is viewable by the particular viewer using clientdevice 702. For example, the video that is requested may not exist(e.g., the request may contain a bad request that does not reference avalid video). As another example, the video requested may be a privatevideo that the viewer does not have access to (e.g., credentials of theviewer can be checked to determine whether the viewer has access to theprivate video). As yet another example, the video may exist but beblocked due to geographic restrictions, because an owner of the contentrequested that the video not be viewable, or for any other suitablereason. If client 702 is not authorized to view the video and/or if thevideo does not exist, a message (not shown) can be sent back to client702 indicating such.

At 710, server 704 can determine an account associated with the videorequested at 708. Any suitable technique(s) can be used to determine anaccount associated with the video such as by maintaining a database ofaccounts and their associated videos.

At 712, server 704 can determine whether there are any annotationsassociated with the account, such as a branding annotation or a videoannotation as described above in connection with FIGS. 1-6B. In someimplementations, annotations can be individually associated with eachvideo, and in such implementations server 704 can determine whether anyannotations are associated with the video at 712.

If annotations are associated with the account (“YES” at 712), server704 can associate the annotation(s) that are associated with the accountwith the requested video at 714. After the annotations are associatedwith the video, server 704 can move to 716. At 716, the server can sendthe video with any associated content to client 702. In someimplementations, associated content can include annotations as describedherein. Additionally, associated content can include any other contentsent with the video including advertisements, recommendations forfurther videos, video specific annotations (e.g., an annotation insertedby a user into a particular video using, for example, video editingsoftware), video metadata, account information (e.g., a name and a linkto an account that the video is associated with), etc.

Otherwise, if annotations are not associated with the video (“NO” at712), server 702 can move to 716 and send the video with any otherassociated content (e.g., other than annotations as described herein) asdescribed above.

At 718, client 702 can receive the video and any associated content. Thevideo can be received using any suitable technique(s), such as byreceiving a file containing the video, receiving a stream of datarepresenting the video, etc.

At 720, client 702 can render the video received at 718 and can presentany associated annotations. In some implementations, the annotations canbe presented at a particular location specified by a user of the useraccount (e.g., by receiving a user indication of a placement at 218 ofFIG. 2). Additionally, client 702 can present any other associatedcontent to a viewer, such as advertisements, metadata, accountinformation, etc., as appropriate.

In some implementations, annotations can be presented to users overlaidon the video as the video is being rendered, and in some cases theviewer can be presented with the option of inhibiting the annotations.Alternatively, the annotations can be presented to viewers as part ofthe video (e.g., integrated into the video content), and the viewer maynot have the option of inhibiting the annotations.

In some implementations, whether annotations are to be presented to aviewer can be based on one or more properties of client 702. Forexample, if client 702 is a personal computer or laptop computer,annotations can be presented to the viewer when rendering the video. Asanother example, if client 702 is a mobile computing device (e.g., asmartphone, a mobile phone, a wearable computer, etc.) presentation ofannotations can be inhibited. Additionally or alternatively, whetherannotations are presented to a viewer can be based on a type ofapplication being used to render the video. For example, if theapplication being used to render the video is a browser basedapplication (e.g., Flash, HTML, etc.) annotations can be presented tothe viewer when rendering the video. As another example, if theapplication being used to render the video is an application (e.g., anapplication for rendering videos associated with a particular videohosting service) presentation of annotations can be inhibited.

In some implementations, as described above in connection with FIG. 2,an action can be associated with viewer selection of the annotation. Forexample, if the annotation is a brand annotation, selecting theannotation can cause client 702 to navigate to a location associatedwith the user account, such as a particular channel of a video hostingservice, a home page of the brand associated with the user account, etc.As another example, if the annotation is a video annotation, selectingthe annotation can cause client 702 to render the video associated withthe video annotation (e.g., a video chosen as described in connectionwith, for example, FIGS. 2 and 5). In a more particular example,receiving an indication that a pointing device is hovering over a videoannotation (and/or receiving a single selection of the video annotation)can cause the video that forms the basis of the video annotation tobegin rendering in a smaller format than the currently rendering video(e.g., in a picture-in-picture format), which may be larger than thevideo annotation as presented in association with the currentlyrendering video (e.g., the video annotation can be rendered in a formatbetween the format of the video annotation and the format of thecurrently rendering video). Additionally, in such an example, thecurrently rendering video can be paused and/or muted during rendering ofthe video annotation video.

It should be noted that although the annotations as described herein aredescribed as being either a branding annotation or a video annotation,in some implementations, the mechanisms described herein can be used toassociate any type of annotation with multiple videos associated with auser account. For example, annotations can be added for menu-likeactions that can be performed based on a currently rendering video. Moreparticularly, buttons can be added that take a viewer to a next episodein a series or a next video in a playlist, that allow the viewer tosubscribe to the account or the series that the currently renderingvideo is associated with, or any other suitable menu functions. Inanother example, an annotation can be added that provides an icon and/orlink that, when selected by a viewer, causes client 702 rendering thevideo to navigate to a social media presence associated with the useraccount.

It should also be noted that the annotations can take any shape andinclude any features. For example, annotations need not be rectangularand can be any shape specified by a user. As another example,annotations can take the form of a ticker at the bottom or top of avideo, which can be updated by a user in real-time to display anysuitable messages to viewers of videos associated with the user account.

FIG. 8 shows an example 800 of a flow diagram for selecting and/orchanging an annotation in accordance with some implementations of thedisclosed subject matter. Flow 800 can, for example, be representativeof communications that take place during the processes associated withFIGS. 1 and 2 in some implementations. At 802, client 702 can sendcredentials to server 704. The credentials can be in any suitable formand can be transmitted using any suitable technique(s) as describedabove in connection with FIG. 1.

At 804, server 704 can receive and verify the credentials, for example,as described above in connection with FIG. 1. At 806, server 704 candetermine an account associated with the credentials and retrieve anyannotations currently associated with the account. For example, server704 can determine whether any video or branding annotations arecurrently associated with the user account.

At 808, server 704 can send the retrieved annotations (if any wereassociated with the user account) to client 702. For example, theretrieved annotations can be sent as part of a user interface forselecting and/or changing an annotation. In a more particular example,the retrieved annotations can be sent to client 702 to be presented in auser interface such as the user interface described in connection withFIGS. 4, 6A and 6B. If there are no annotations associated with the useraccount, a user interface showing that no annotations are currentlyassociated with the user account, such as user interface 300 describedin connection with FIG. 3 can be presented to the user.

At 810, client 702 can present the annotations sent from server 704 at808. For example, the current annotations can be presented as part of auser interface, such as the user interface described in connection withFIGS. 4, 6A and 6B.

At 812, client 702 can detect whether the user has requested a change inthe presented annotation. For example, if the current annotations arepresented using a user interface such as the user interface described inconnection with FIGS. 3, 4, 6A and 6B, the client can determine whetherthe user has made any changes by, for example, selecting any of userinterface elements 310, 312, 408, 410 or 420, or making a change to oneof user interface elements 412, 414, 608 or 652.

If client 702 does not detect that the user requested a change to theannotation(s) (“NO” at 812), the client can return to 810 and continueto present the current annotation(s) at 810 and detect changes at 812.Otherwise, if client 702 detects that the user has requested a change tothe annotation (“YES” at 812), client 702 can proceed to 814.

At 814, client 702 can communicate with server 704 to make any changesto the annotations requested by the user and when the annotation changeshave been made client 702 can return to 810 to present the currentannotations to the user.

At 816, server 704 can communicate with client 702 to make the changesto the annotations requested by the user, and when the annotationchanges are made (e.g., when a user chooses to save the annotation byselecting 418, or chooses to remove the annotation by selecting 420)server 704 can proceed to 818 and associate the new annotation (e.g.,newly added, changed, or removed annotation) with the account. When thenew annotation(s) have been associated with the account, server 704 canreturn to 808 and send the newly associated annotation to client 702 forpresentation to the user.

It should be noted that the annotations can be changed using anysuitable technique(s). For example, client 702 can make changes to theannotation such as the placement of the annotation (e.g., selected usingdrop down list 412) or the display time (e.g., selected using drop downlist 414) and then transmit the changes when the user selects to savethe changed annotation (e.g., by selecting 418). As another example,client 702 can transmit instructions to server 704 indicating useractions (e.g., selection of user interface elements and the like) andserver 704 can interpret the actions and return instructions forchanging the user interface. Changes made to the annotations can then besaved when the user indicates that the changes should be saved (e.g., byselecting 418). It is understood that the user interface and themechanisms described herein can be implemented using various techniquesand the behavior of client 702 and server 704 can vary depending on theparticular implementation.

FIG. 9 shows an example 900 of a generalized schematic diagram of asystem on which the mechanisms for presenting annotations acrossmultiple videos as described herein can be implemented in accordancewith some implementations. As illustrated, system 900 can include one ormore client devices 702. Client devices 702 can be local to each otheror remote from each other. Client devices 702 can be connected by one ormore communications links 906 to a communications network 902 that canbe linked via a communications link 904 to server 704.

System 900 can include one or more servers 704. Server 704 can be anysuitable server for providing access to the mechanisms described hereinfor presenting annotations across multiple videos, such as a processor,a computer, a data processing device, or any suitable combination ofsuch devices. For example, the mechanisms for presenting annotationsacross multiple videos can be distributed into multiple backendcomponents and multiple frontend components and/or interfaces. In a moreparticular example, backend components, such as data collection and datadistribution can be performed on one or more servers 704. In anotherparticular example, frontend components, such as a user interface, dataentry, annotation presentation, video rendering, etc., can be performedon one or more client devices 702.

In some implementations, each of the client devices 702 and server 704can be any of a general purpose device such as a computer or a specialpurpose device such as a client, a server, etc. Any of these general orspecial purpose devices can include any suitable components such as ahardware processor (which can be a microprocessor, digital signalprocessor, a controller, etc.), memory, communication interfaces,display controllers, input devices, etc. For example, client device 702can be implemented as a personal computer, a laptop computer, a digitalmedia receiver, a smartphone, a tablet computer, a mobile telephone, awearable computer, a personal data assistant (PDA), a set-top box, asmart television, a home entertainment system, a game console, any othersuitable computing device, or any suitable combination thereof.

Communications network 902 can be any suitable computer network orcombination of such networks including the Internet, an intranet, awide-area network (WAN), a local-area network (LAN), a wireless network,a digital subscriber line (DSL) network, a frame relay network, anasynchronous transfer mode (ATM) network, a virtual private network(VPN), etc. Communications links 904 and 906 can be any communicationslinks suitable for communicating data among client devices 702 andserver 704, such as network links, dial-up links, wireless links,hard-wired links, any other suitable communications links, or anysuitable combination of such links. Client devices 702 can enable use ofany of the techniques described herein that can allow the features ofthe mechanisms to be used. Client devices 702 and server 704 can belocated at any suitable location.

FIG. 10 illustrates an example 1000 of hardware that can be used toimplement server 704 and one of client devices 702 depicted in FIG. 9 inaccordance with some implementations of the disclosed subject matter.Referring to FIG. 10, client device 702 can include a hardware processor1012, a display 1014, an input device 1016, and memory 1018, which canbe interconnected. In some implementations, memory 1018 can include astorage device (such as a non-transitory computer-readable medium) forstoring a computer program for controlling hardware processor 1012.

Hardware processor 1012 can use the computer program to present ondisplay 1014 content and/or an interface that allows a user to interactwith the mechanisms described herein for presenting annotations inassociation with videos rendered by a device, such as client 702, and tosend and receive data through communications link 906. It should also benoted that data received through communications link 906 or any othercommunications links can be received from any suitable source. In someimplementations, hardware processor 1012 can send and receive datathrough communications link 906 or any other communication links using,for example, a transmitter, receiver, transmitter/receiver, transceiver,or any other suitable communication device. Input device 1016 can be acomputer keyboard, a computer mouse, a touchpad, a voice recognitioncircuit, a touchscreen, and/or any other suitable input device.

Server 704 can include a hardware processor 1022, a display 1024, aninput device 1026, and memory 1028, which can be interconnected. In someimplementations, memory 1028 can include a storage device for storingdata received through communications link 904 or through other links.The storage device can further include a server program for controllinghardware processor 1022.

Hardware processor 1022 can use the server program to communicate withclients 702 as well as provide access to and/or copies of the mechanismsdescribed herein. It should also be noted that data received throughcommunications link 904 or any other communications links can bereceived from any suitable source. In some implementations, hardwareprocessor 1022 can send and receive data through communications link 904or any other communication links using, for example, a transmitter,receiver, transmitter/receiver, transceiver, or any other suitablecommunication device. In some implementations, hardware processor 1022can receive commands and/or values transmitted by one or more users.Input device 1026 can be a computer keyboard, a computer mouse, atouchpad, a voice recognition circuit, a touchscreen, and/or any othersuitable input device.

In some implementations, server 704 can be implemented in one server orcan be distributed as any suitable number of servers. For example,multiple servers 704 can be implemented in various locations to increasereliability and/or increase the speed at which the server cancommunicate with client devices 702.

In some implementations, the mechanisms described herein can includeserver-side software, client-side software, server-side hardware,client-side hardware, firmware, or any suitable combination thereof. Forexample, these mechanisms can encompass one or more Web pages or Webpage portions (e.g., via any suitable encoding, such as Hyper TextMarkup Language (“HTML”), Dynamic Hyper Text Markup Language (“DHTML”),Extensible Markup Language (“XML”), JavaServer Pages (“JSP”), ActiveServer Pages (“ASP”), Cold Fusion, or any other suitable approaches). Asanother example, these mechanisms can encompass a computer program thatcauses a processor to execute the user input interface application. Forinstance, these mechanisms can encompass a computer program written in aprogramming language recognizable by client device 702 and/or server 704that is executing the mechanisms (e.g., a program written in aprogramming language, such as, Java, C, Objective-C, C++, C #,JavaScript, Visual Basic, HTML, XML, ColdFusion, any other suitableapproaches, or any suitable combination thereof).

In situations in which the mechanisms described herein collect personalinformation about users, or can make use of personal information, theusers can be provided with an opportunity to control whether programs orfeatures collect user information (e.g., information about a user'ssocial network, social actions or activities, profession, a user'spreferences, or a user's current location), or to control whether and/orhow to receive content from the content server that can be more relevantto the user. In addition, certain data can be treated in one or moreways before it is stored or used, so that personally identifiableinformation is removed. For example, a user's identity can be treated sothat no personally identifiable information can be determined for theuser, or a user's geographic location can be generalized where locationinformation is obtained (such as to a city, ZIP code, or state level),so that a particular location of a user cannot be determined. Thus, theuser can have control over how information is collected about the userand used by a content server.

In some implementations, any suitable computer readable media can beused for storing instructions for performing the functions and/orprocesses described herein. For example, in some implementations,computer readable media can be transitory or non-transitory. Forexample, non-transitory computer readable media can include media suchas magnetic media (such as hard disks, floppy disks, etc.), opticalmedia (such as compact discs, digital video discs, Blu-ray discs, etc.),semiconductor media (such as flash memory, electrically programmableread only memory (EPROM), electrically erasable programmable read onlymemory (EEPROM), etc.), any suitable media that is not fleeting ordevoid of any semblance of permanence during transmission, and/or anysuitable tangible media. As another example, transitory computerreadable media can include signals on networks, in wires, conductors,optical fibers, circuits, any suitable media that is fleeting and devoidof any semblance of permanence during transmission, and/or any suitableintangible media.

It should be understood that the above described steps of the processesof FIGS. 1, 2, 7 and 8 can be executed or performed in any order orsequence not limited to the order and sequence shown and described inthe figures. Also, some of the above steps of the processes of FIGS. 1,2, 7 and 8 can be executed or performed substantially simultaneouslywhere appropriate or in parallel to reduce latency and processing times.Furthermore, it should be noted that FIGS. 1, 2, 7 and 8 are provided asexamples only. At least some of the steps shown in these figures may beperformed in a different order than represented, performed concurrently,or omitted.

The provision of the examples described herein (as well as clausesphrased as “such as,” “e.g.,” “including,” and the like) should not beinterpreted as limiting the claimed subject matter to the specificexamples; rather, the examples are intended to illustrate only some ofmany possible aspects. It should also be noted that, as used herein, theterm mechanism can encompass hardware, software, firmware, or anysuitable combination thereof.

Accordingly, methods, systems, and media for presenting annotationacross multiple videos are provided.

Although the invention has been described and illustrated in theforegoing illustrative implementations, it is understood that thepresent disclosure has been made only by way of example, and thatnumerous changes in the details of implementation of the invention canbe made without departing from the spirit and scope of the invention,which is limited only by the claims that follow. Features of thedisclosed implementations can be combined and rearranged in variousways.

What is claimed:
 1. A method for presenting annotations across multiplevideos, the method comprising: receiving a selection of a subset ofvideos from a plurality of videos for annotation and an indication toplace the annotation in a plurality of videos associated with a useraccount in which the subset of videos is associated, wherein the subsetof videos includes a first video and a second video; in response toreceiving the selection of the subset of videos for annotation and theindication to place the annotation in the plurality of videos associatedwith the user account, identifying, using a hardware processor, the useraccount associated with the subset of videos and identifying theplurality of videos associated with the user account; causing anannotation interface for configuring a first annotation in the pluralityof videos to be presented, wherein the annotation interface includes aposition selection within each video in the plurality of videos forplacing the first annotation, a display time selection for the firstannotation to begin being presented within each video in the pluralityof videos, and a time duration selection for the first annotation to bepresented within each video in the plurality of videos, wherein theposition selection, the display time selection, the duration of timeselection associated with the first annotation are to be applied to eachvideo in the plurality of videos; and in response to receiving userinputs in the annotation interface that configure the positionselection, the display time selection, and the duration of timeselection associated with the first annotation, associating the firstannotation with the first video, associating the first annotation withthe second video, and associating the first annotation with each of theplurality of videos, wherein the first video, the second video, and theplurality of videos are associated with the user account.
 2. The methodof claim 1, further comprising inhibiting presentation of the firstannotation during playback of videos associated with the user accountthat are not included in the subset of videos.
 3. The method of claim 1,further comprising: specifying a second annotation to be associated withthe subset of videos; associating the second annotation with the firstvideo of the subset of videos and associating the second annotation withthe second video of the subset of videos; and causing the secondannotation to be presented during playback of each of the subset ofvideos, including both the first video and the second video.
 4. Themethod of claim 1, further comprising selecting a new annotation toreplace the first annotation periodically based on a rule.
 5. The methodof claim 1, further comprising: subsequent to associating the firstannotation with the plurality of videos, determining that a new videohas been associated with the user account; and causing the firstannotation to be presented during playback of the new video.
 6. Themethod of claim 1, wherein the plurality of videos is all videosassociated with the user account.
 7. The method of claim 1, wherein theannotation interface includes a preview of the first annotation withinthe selected first video at a position corresponding to the positionselection and at times corresponding to the display time selection andthe time duration selection.
 8. The method of claim 1, wherein the firstannotation includes at least one of text, animation, an image, ahyperlink, and a video.
 9. The method of claim 1, further comprisingcausing content associated with the first annotation to be presented inresponse to selection of the first annotation during playback of one ofthe plurality of videos.
 10. A system for presenting annotations acrossmultiple videos, the system comprising: a hardware processor configuredto: receive a selection of a subset of videos from a plurality of videosfor annotation and an indication to place the annotation in a pluralityof videos associated with a user account in which the subset of videosis associated, wherein the subset of videos includes a first video and asecond video; in response to receiving the selection of the subset ofvideos for annotation and the indication to place the annotation in theplurality of videos associated with the user account, identify the useraccount associated with the subset of videos and identifying theplurality of videos associated with the user account; cause anannotation interface for configuring a first annotation in the pluralityof videos to be presented, wherein the annotation interface includes aposition selection within each video in the plurality of videos forplacing the first annotation, a display time selection for the firstannotation to begin being presented within each video in the pluralityof videos, and a time duration selection for the first annotation to bepresented within each video in the plurality of videos, wherein theposition selection, the display time selection, the duration of timeselection associated with the first annotation are to be applied to eachvideo in the plurality of videos; and in response to receiving userinputs in the annotation interface that configure the positionselection, the display time selection, and the duration of timeselection associated with the first annotation, associate the firstannotation with the first video, associating the first annotation withthe second video, and associating the first annotation with each of theplurality of videos, wherein the first video, the second video, and theplurality of videos are associated with the user account.
 11. The systemof claim 10, wherein the hardware processor is further configured toinhibit presentation of the first annotation during playback of videosassociated with the user account that are not included in the subset ofvideos.
 12. The system of claim 10, wherein the hardware processor isfurther configured to: specify a second annotation to be associated withthe subset of videos; associate the second annotation with the firstvideo of the subset of videos and associating the second annotation withthe second video of the subset of videos; and cause the secondannotation to be presented during playback of each of the subset ofvideos, including both the first video and the second video.
 13. Thesystem of claim 10, wherein the hardware processor is further configuredto select a new annotation to replace the first annotation periodicallybased on a rule.
 14. The system of claim 10, further comprising:subsequent to associating the first annotation with the plurality ofvideos, determine that a new video has been associated with the useraccount; and cause the first annotation to be presented during playbackof the new video.
 15. The system of claim 10, wherein the plurality ofvideos is all videos associated with the user account.
 16. The system ofclaim 10, wherein the annotation interface includes a preview of thefirst annotation within the selected first video at a positioncorresponding to the position selection and at times corresponding tothe display time selection and the time duration selection.
 17. Thesystem of claim 10, wherein the first annotation includes at least oneof text, animation, an image, a hyperlink, and a video.
 18. The systemof claim 10, wherein the hardware processor is further configured tocause content associated with the first annotation to be presented inresponse to selection of the first annotation during playback of one ofthe plurality of videos.
 19. A non-transitory computer-readable mediumcontaining computer executable instructions that, when executed by aprocessor, cause the processor to perform a method for presentingannotations across multiple videos, the method comprising: receiving aselection of a subset of videos from a plurality of videos forannotation and an indication to place the annotation in a plurality ofvideos associated with a user account in which the subset of videos isassociated, wherein the subset of videos includes a first video and asecond video; in response to receiving the selection of the subset ofvideos for annotation and the indication to place the annotation in theplurality of videos associated with the user account, identifying theuser account associated with the subset of videos and identifying theplurality of videos associated with the user account; causing anannotation interface for configuring a first annotation in the pluralityof videos to be presented, wherein the annotation interface includes aposition selection within each video in the plurality of videos forplacing the first annotation, a display time selection for the firstannotation to begin being presented within each video in the pluralityof videos, and a time duration selection for the first annotation to bepresented within each video in the plurality of videos, wherein theposition selection, the display time selection, the duration of timeselection associated with the first annotation are to be applied to eachvideo in the plurality of videos; and in response to receiving userinputs in the annotation interface that configure the positionselection, the display time selection, and the duration of timeselection associated with the first annotation, associating the firstannotation with the first video, associating the first annotation withthe second video, and associating the first annotation with each of theplurality of videos, wherein the first video, the second video, and theplurality of videos are associated with the user account.